home *** CD-ROM | disk | FTP | other *** search
- (*--------------------------------------------------------------------------
- $VER: jup_mod 0.16 (07-dec-94)
- --------------------------------------------------------------------------*)
- MODULE jup; IMPORT Arts; IMPORT DosD, DosL; IMPORT SYSTEM; CONST modVersion=
- "$VER: jup 1.1 (07-dec-94) (PD)1994 by Jürgen Weinelt\n\o" ; dataName =
- "T:JUPDATA"; VAR a: ARRAY[0..80] OF CHAR; d: LONGINT; f: DosD.FileHandlePtr;
- date: DosD.Date; diff: LONGINT ; current: DosD.Date; dt: DosD.DateTime; dst,
- tst : ARRAY[0..255] OF CHAR ; PROCEDURE PutStr(a : ARRAY OF CHAR) ; VAR dum:
- LONGINT ; BEGIN dum:=DosL.Write(DosL.Output(),SYSTEM.ADR(a),HIGH(a)+1) ; END
- PutStr ; PROCEDURE PutDate(a: ARRAY OF CHAR) ; VAR dum: LONGINT; i: LONGINT;
- BEGIN FOR i := HIGH(a) TO 0 BY -1 DO IF a[i] =" " THEN a[i]:="\o"; END; END;
- dum := DosL.Write( DosL.Output() ,SYSTEM.ADR(a) ,HIGH( a)+1); END PutDate;
- PROCEDURE PutInt(t: LONGINT); VAR str: ARRAY[0..1] OF CHAR ; BEGIN str[0] :=
- "\o" ; str[1]:="\o"; IF t#0 THEN str[0] := CHAR((t MOD 10)+48); PutInt(t DIV
- 10); PutStr(str); END; END PutInt; PROCEDURE PutTime(t: LONGINT); VAR temp:
- LONGINT; flag: BOOLEAN; BEGIN flag:=FALSE; temp:=t DIV (24*60*60); IF temp>0
- THEN PutInt(temp); IF temp #1 THEN PutStr(" days "); ELSE PutStr(" day ");
- END; t:=t-temp *24 *60 *60; flag:=TRUE; END; temp:=t DIV (60*60); IF flag OR
- (temp>0) THEN IF temp=0 THEN PutStr("0"); ELSE PutInt(temp); END; IF temp #1
- THEN PutStr(" hours "); ELSE PutStr(" hour "); END; t:=t-temp *60*60; flag:=
- TRUE; END; temp:=t DIV 60; IF flag OR (temp >0) THEN IF temp=0 THEN PutStr(
- "0" ); ELSE PutInt(temp); END ; IF temp #1 THEN PutStr(" minutes ") ; ELSE
- PutStr(" minute "); END; t:=t-temp *60; flag:=TRUE; END; temp:=t; IF flag OR
- (temp>0) THEN IF temp=0 THEN PutStr("0"); ELSE PutInt(temp); END; IF temp #1
- THEN PutStr(" seconds.") ; ELSE PutStr(" second."); END; END; END PutTime;
- BEGIN a:=modVersion; f:=DosL.Open(SYSTEM.ADR(dataName),DosD.readOnly); IF f#
- NIL THEN d:=DosL.Read(f,SYSTEM.ADR(date),SIZE(date)); DosL.Close(f); f:=NIL;
- ELSE DosL.DateStamp( SYSTEM.ADR(date)); f:=DosL.Open(SYSTEM.ADR(dataName ),
- DosD.newFile); IF f #NIL THEN d:=DosL.Write(f,SYSTEM.ADR(date) ,SIZE(date));
- DosL.Close( f ); f :=NIL; ELSE Arts.Exit(5 ) ; END ; END ; DosL.DateStamp(
- SYSTEM.ADR(current)); diff := (current.days*24*60*60)-(date.days*24*60*60)+(
- current.minute*60)-(date.minute*60)+(current.tick DIV 50)-(date.tick DIV 50)
- ; IF diff<0 THEN Arts.Exit(6); END; dt.date:=date; dt.format:=DosD.formatDOS
- ; dt.flags:=DosD.DateTimeFlagSet{ DosD.subst }; dt.strDay:=NIL; dt.strDate:=
- SYSTEM.ADR(dst); dt.strTime:=SYSTEM.ADR(tst) ; d:=DosL.DateToStr(SYSTEM.ADR(
- dt )) ; IF d=0 THEN Arts.Exit(7); END ; PutStr( "Booted " ); PutDate(dst);
- PutStr(" "); PutStr(tst); IF diff>0 THEN PutStr(" up "); PutTime(diff); END;
- PutStr("\n"); Arts.Exit(0); CLOSE IF f #NIL THEN DosL.Close(f); f:=NIL; END;
- END
- jup
- .
-
- (* Funny, isn't it? :-) *)
-